home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / glibc108.zip / glibc108 / manual / examples / filesrv.c < prev    next >
C/C++ Source or Header  |  1994-02-16  |  945b  |  47 lines

  1. #include <stdio.h>
  2. #include <errno.h>
  3. #include <stdlib.h>
  4. #include <sys/socket.h>
  5. #include <sys/un.h>
  6.  
  7. #define SERVER    "/tmp/serversocket"
  8. #define MAXMSG    512
  9.  
  10. int
  11. main (void)
  12. {
  13.   int sock;
  14.   char message[MAXMSG];
  15.   struct sockaddr_un name;
  16.   size_t size;
  17.   int nbytes;
  18.  
  19.   /* Make the socket, then loop endlessly. */
  20.  
  21.   sock = make_named_socket (SERVER);
  22.   while (1)
  23.     {
  24.       /* Wait for a datagram. */
  25.       size = sizeof (name);
  26.       nbytes = recvfrom (sock, message, MAXMSG, 0,
  27.              (struct sockaddr *) & name, &size);
  28.       if (nbytes < 0)
  29.     {
  30.       perror ("recfrom (server)");
  31.       exit (EXIT_FAILURE);
  32.     }
  33.  
  34.       /* Give a diagnostic message. */
  35.       fprintf (stderr, "Server: got message: %s\n", message);
  36.  
  37.       /* Bounce the message back to the sender. */
  38.       nbytes = sendto (sock, message, nbytes, 0,
  39.                (struct sockaddr *) & name, size);
  40.       if (nbytes < 0)
  41.     {
  42.       perror ("sendto (server)");
  43.       exit (EXIT_FAILURE);
  44.     }
  45.     }
  46. }
  47.